#ifndef _Iocp_H_
#define _Iocp_H_

#include "Type.h"

class Iocp
{
public:
	Iocp();
	virtual ~Iocp();

	void Register(HANDLE handle, void *pvCompletionkey = NULL);
	bool GetQueuedCompletionStatus(ulong *cbTransferred, PULONG_PTR pvCompletionkey, OVERLAPPED **ppkOverlapped, ulong unWaittime);
	bool PostQueuedCompletionStatus(ulong cbTransferred, ulong *pvCompletionkey, OVERLAPPED *pkOverlapped);


private:
	HANDLE m_hIocp;
};

#endif // _Iocp_H_
